#!/usr/bin/env python
"""
为现有用户分配学院的脚本
"""
import os
import django

# 设置Django环境
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'educational_system.settings')
django.setup()

from apps.accounts.models import College, UserProfile
from django.contrib.auth.models import User

def assign_colleges():
    """为现有用户分配学院"""
    print("=== 为用户分配学院 ===")
    
    # 获取默认学院
    default_college = College.objects.filter(code='CS').first()
    if not default_college:
        default_college = College.objects.first()
    
    if not default_college:
        print("错误：没有找到任何学院数据")
        return
    
    print(f"默认学院：{default_college.name}")
    
    # 为所有二级学院用户分配学院
    college_users = UserProfile.objects.filter(role='college', college__isnull=True)
    updated_count = 0
    
    for profile in college_users:
        profile.college = default_college
        profile.save()
        updated_count += 1
        print(f"✓ 为用户 {profile.user.username} 分配学院：{default_college.name}")
    
    print(f"\n总共为 {updated_count} 个用户分配了学院")
    
    # 显示当前用户学院分配情况
    print("\n=== 当前用户学院分配情况 ===")
    for profile in UserProfile.objects.all():
        college_info = f"学院：{profile.college.name}" if profile.college else "未分配学院"
        print(f"用户 {profile.user.username} ({profile.get_role_display()}) - {college_info}")

if __name__ == '__main__':
    assign_colleges()